package com.betterjr.modules.customer.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.betterjr.common.service.BaseService;
import com.betterjr.common.utils.BTAssert;
import com.betterjr.modules.cert.service.CustCertService;
import com.betterjr.modules.customer.dao.CustCloudPlatformTenantMapper;
import com.betterjr.modules.customer.entity.CustCloudPlatformTenant;

/**
 * 
 * @ClassName: CustCloudPlatformTenantService 
 * @Description: 云平台数据操作
 * @author xuzx
 * @date 2018年1月19日 下午3:20:09 
 *
 */
@Service
public class CustCloudPlatformTenantService
        extends BaseService<CustCloudPlatformTenantMapper, CustCloudPlatformTenant> {

    @Autowired
    private CustCertService custCertService;

    /**
     * 
     * @Title: saveTenantInformation 
     * @Description: 保存或更新云平台集团信息
     * @param custCloudPlatformTenant 云平台集团信息
     * @param anOperorg 操作机构
     * @throws 
     * @author xuzx
     * @date 2018年1月19日 下午3:21:08
     */
    public void saveTenantInformation(final CustCloudPlatformTenant custCloudPlatformTenant, final String anOperorg) {
        BTAssert.notNull(custCloudPlatformTenant, "传入对象为空！");
        BTAssert.notNull(anOperorg, "传入操作机构为空！");
        CustCloudPlatformTenant tenat = this.selectByPrimaryKey(custCloudPlatformTenant.getCustID());
        if (tenat != null) {
            final String serialNo = tenat.getSerialNo();
            final String corpName = custCloudPlatformTenant.getCorpName();
            tenat.setCorpName(corpName);
            custCertService.updateTenatInformation(serialNo, corpName);
            this.updateByPrimaryKey(tenat);
        } else {
            CustCloudPlatformTenant capitalsystemTenant = custCloudPlatformTenant;
            capitalsystemTenant.initAddValue(capitalsystemTenant);
            capitalsystemTenant.setOperorg(anOperorg);
            String corpName = capitalsystemTenant.getCorpName();
            String anSerialNo = custCertService.saveTenatInformation(corpName, anOperorg);
            capitalsystemTenant.setSerialNo(anSerialNo);
            this.insert(capitalsystemTenant);
        }
    }

    /**
     * 
     * @Title: getTenantInformation 
     * @Description: 查询集团信息 
     * @param anCustID 集团id
     * @return 集团信息
     * @throws 
     * @author xuzx
     * @date 2018年1月19日 下午3:21:55
     */
    public CustCloudPlatformTenant getTenantInformation(final Long anCustID) {
        BTAssert.notNull(anCustID, "传入集团编号为空！");
        CustCloudPlatformTenant tenant = this.selectByPrimaryKey(anCustID);
        return tenant;
    }
}
